<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class generarCalendario extends CI_Controller {

    public function __construct() {
        parent::__construct();
        session_start();
        $this->load->model('tipo_habitacionM');
        $this->load->model('categoriaM');
        $this->load->model('cuartoM');
        $this->load->model('reservaM');
        $this->load->model('ingreso_reservam');
        $this->load->model('tarifa_x_diam');
        $this->load->model('venta_producto_serviciom');
        $this->load->model('ajustem');
        $this->load->model('agenciam');
    }

    public function index() {
        $fechaCalendario = $_GET["desde"];
        $this->formatoFecha($fechaCalendario);
        $_SESSION["fechaCalendario"] = $fechaCalendario;

        $hoy = date("Y-m-d");
        $json = new stdClass();
        $json->habitaciones = $this->tipo_habitacionM->cargarTipos();
        foreach ($json->habitaciones as $key => $valor) {
            $json->habitaciones[$key]->categorias = $this->categoriaM->cargarCategorias($json->habitaciones[$key]->id_tipo_habitacion);
            foreach ($json->habitaciones[$key]->categorias as $key2 => $valor2) {
                $json->habitaciones[$key]->categorias[$key2]->habitaciones = $this->cuartoM->cargarCuartos($json->habitaciones[$key]->categorias[$key2]->id_categoria);
            }
        }

//        $desde = date('Y-m-d', strtotime(urldecode($_GET['desde'])));
//        $hasta = date('Y-m-d', strtotime(urldecode($_GET['hasta'])));
        $desde = $_GET["desde"];
        $hasta = $_GET["hasta"];
        $desde2 = strtotime('+1 day', strtotime($desde));
        $desde2 = date('Y-m-j', $desde2);
        $hasta2 = strtotime('-1 day', strtotime($hasta));
        $hasta2 = date('Y-m-j', $hasta2);
        //  echo "$desde - $hasta <br>";
        //  echo $jsDateTS . "<br>";
        $json->reservas = $this->reservaM->consultarReservas($desde, $desde2, $hasta, $hasta2);
        $json->bloqueos = $this->reservaM->consultarHabitacionesBloqueadas($desde, $desde2, $hasta, $hasta2);
        foreach ($json->reservas as $row) {
            // echo $row->id_reserva;
            if ($row->checkin_realizado != 1 && $row->fecha_ingreso <= $hoy)
                $row->borde = "pCheck-in";
            else if ($row->checkin_realizado == 1 && !($row->fecha_salida <= $hoy))
                $row->borde = "Check-inR";
            else if ($row->checkout_realizado != 1 && $row->fecha_salida <= $hoy) {
                $row->borde = "pCheck-out";
            } else {
                $row->borde = "b" . $row->estatus;
            }
            if ($row->estatus == "bloqueado") {
                $row->borde = "bbloqueado";
            }
            $row->moneda = $_SESSION["establecimiento"]["moneda"];
            $row->nota = str_replace("'", "&#39", $row->nota);
            //  echo $row->nota;
//            $row->total_pagar = number_format($row->total_a_pagar + $row->impuesto, 2, ".", ",");
//            $row->pendiente = number_format($row->total_a_pagar + $row->impuesto - $row->ingresos, 2, ".", ",");
//            $row->ingresos = number_format($row->ingresos, 2, ".", ",");


            $idReserva = $row->id_reserva;
            $ingresos = $this->ingreso_reservam->obtenerIngresos($idReserva);
            $costoHospedajeSinImp = $this->tarifa_x_diam->obtenerCostosHospedaje($idReserva);
            $totalConsumos = $this->venta_producto_serviciom->obtenerTotalConsumos($idReserva);
            $totalImpuestosConsumo = $this->venta_producto_serviciom->obtenerTotalImpuestosConsumos($idReserva);
            $ajustes = $this->ajustem->obtenerAjustes($idReserva);
            $row->total_pagar = (float) ($row->impuesto + $costoHospedajeSinImp[0]->totalHospedaje + $totalConsumos[0]->totalConsumos + $totalImpuestosConsumo[0]->totalImpuestosConsumo + $ajustes[0]->totalAjuste);
            $row->ingresos = $ingresos[0]->totalIngreso;
            $row->pendiente = number_format($row->total_pagar - $ingresos[0]->totalIngreso, 2, ".", ",");
            if ($row->pendiente == 0) {
                $row->pendiente = "0.00";
            }
            $row->total_pagar = number_format($row->total_pagar, 2, ".", ",");
            $row->ingresos = number_format($ingresos[0]->totalIngreso, 2, ".", ",");
            $row->nombre_agencia = "";
            if ($row->id_agencia != "") {
                $agencia = $this->agenciam->getAgencia($row->id_agencia);
                if (sizeof($agencia) == 0) {
                    $row->nombre_agencia = "";
                } else if ($agencia[0]->tipo == "online") {
                    $agenciaOnline = $this->agenciam->getAgenciaOnline($agencia[0]->nombre);
                    $row->nombre_agencia = $agenciaOnline[0]->nombre;
                } else {
                    $row->nombre_agencia = $agencia[0]->nombre;
                }
            }
        }
        // var_dump($json);
        echo json_encode($json);
    }

    protected function formatoFecha(&$fecha) {
        if (strpos($fecha, "-") !== false) {
            $fecha = explode("-", $fecha);
            $fecha = "$fecha[0]/$fecha[1]/$fecha[2]";
        }
    }

}
